package algorithm.shejimoshi;

/**
 * @Author liuhaoqi
 * @Date 2021/1/5 10:10
 * @Version 1.0
 * 单例模式
 */
//DCL
//public class Singleton {
//    private static volatile Singleton singleton = null;
//
//    private Singleton() {
//
//    }
//
//    public static Singleton getInstance(){
//        if (singleton==null){
//            synchronized(Singleton.class){
//                if (singleton == null){
//                    singleton = new Singleton();
//                }
//            }
//        }
//        return singleton;
//    }
//}

//饿汉式
//public class Singleton{
//    private static Singleton singleton = new Singleton();
//
//    private Singleton(){}
//
//    public static Singleton getInstanse(){
//        return singleton;
//    }
//}

//懒汉式
public class Singleton{
    private static Singleton singleton = null;
    private Singleton(){

    }
    public static Singleton getInstance(){
        if (singleton == null){
            singleton = new Singleton();
        }
        return singleton;
    }
}